Computer-enabled graphical display and editing systems are used in a wide variety of different applications and industries to view and edit different types of visual images and designs on computer systems or other electronic devices. One common application is electronic design automation, including such applications as layout design, in which the designs for components and spatial layout of electronic components such as integrated circuits and circuit boards are viewed, created and edited using displayed images in graphical software applications. Custom layout design involves rapid manual activity of a designer, where productivity is the key. Improvements in designer productivity, especially involving the more repetitive activities, lead to substantial decrease in design turn-around-time and increase in user satisfaction.
When using existing layout editors, designers must often check the dimensions and spacing of shapes in a layout, e.g. view measured distances and lengths of edges or other representations of physical dimensions of the shapes, including objects, areas, or other features in the design, and/or view the spacing measurements of shapes relative to other shapes. For example, in some situations, the designer is working under design constraints and requirements in which shapes must conform to predetermined minimum tolerances in their dimensions and positions, and the designer needs to see distance measurements to see if and how closely the requirements are being met. In another example, the designer may need to know particular measurements to determine whether new or edited shapes will fit at a desired area or location. Determining distance measurements between design features is a critical aspect of many types of designs, not least electronic device designs in which components must be squeezed into areas of ever-decreasing size and miniaturization, e.g., to decrease manufacturing cost and power consumption of electronic devices.
In one example of a design for which a designer desires to determine distance measurements, FIG. 1 shows a portion of an electronic design layout 10 as graphically displayed on a computer display screen. The layout includes several shapes organized on different layers of the design. For example, two MOS transistors 12 are shown. At this point, the designer wishes to check the distance measurements of and between multiple shapes, enclosures, overlap values, and other features in order to ensure he has met all the intended dimensional and spacing requirements of the design. If the result of this check shows that some dimensions and/or spacing are not within the requirements, the designer may have to make further adjustments to the shape dimensions, spacing values, etc.
In a layout such as in the example of FIG. 1, there may be numerous such distance measurements the designer is interested in, such as tens or hundreds. In currently-used electronic design software, the designer must manually specify a measurement (e.g., a “ruler”) between two specified edges or points of shapes for each measurement he wishes to be displayed. The software displays the value of the measurement once the two endpoints of the ruler are specified by the designer. He or she must draw each of these rulers manually, one at a time, making sure the ruler is precisely placed on both the start and destination edges. To specify such precise graphical rulers, he or she also needs to perform a lot of zoom operations to accurately place the endpoints of the rulers at edges. Some design software may allow “snapping” an endpoint of a ruler to an edge, but in many designs there are numerous edges that are positioned very close to each other, so that numerous zooming operations are still required to precisely select desired edges. Indeed, log file analysis of actual design operations has shown that zoom and ruler operations are by far the most frequently used commands, and very often invoked together, i.e., zooms performed during a ruler operation. Thus, manual placement of rulers in a graphical design involves numerous operations and is often a major productivity bottleneck.
Furthermore, after a user has drawn all the rulers manually in the design, the user may want to alter some of the dimensions and/or positions of shapes or other features of the design. However, in current design software, the rulers display static measurements, and so any changes to shapes would cause corresponding displayed rulers to become incorrect. Therefore, once the designer alters the shapes, he or she is required to re-draw the rulers corresponding to the alterations to make sure that the alterations have met the intended measurement requirements. This again has significant impact on productivity.